The present invention relates to control systems. More specifically, the present invention relates to communication between devices in a closed loop control system.
As is known in the art of semiconductor manufacturing, many of the steps used for producing integrated circuits are preformed within process chambers. The environment in such process chambers is typically rigorously controlled. For example, chemical vapor deposition (CVD) is performed by placing semiconductor wafers within a process chamber and then admitting selected gasses into the chamber while controlling the pressure and temperature within the chamber. Typically, the pressure in such chambers is very low (near vacuum) and the temperature is very high (several hundred degrees Celsius). As another example, in R.F. sputtering, in addition to controlling the pressure and temperature within the chamber, and in addition to controlling the gas content within the chamber, power is also selectively applied to electrodes within the chamber to carry out the desired R.F. sputtering process.
Tools for performing such processes (e.g., CVD and R.F. sputtering) typically include a tool controller that monitors and controls all of the parameters (e.g., pressure, temperature, power, gas content) relevant to the process. The tool controller also typically controls mechanical functions such as opening and closing doors, and moving wafers into and out of the process chamber. Such tools also typically use a sensor for measuring each of the relevant parameters (e.g., pressure, temperature) within the chamber and an actuator for adjusting the relevant parameters. Finally, such tools also typically use a specific controller for controlling, in response to instructions received from the tool controller, each of the relevant process parameters.
FIG. 1 shows a block diagram of such a prior art tool 100. Tool 100 is generally representative of a variety of tools used for the manufacture of semiconductors (e.g., the Applied Materials Producer SACVD). Tool 100 includes a process chamber 102 and a tool controller 110 for monitoring and controlling all of the parameters relevant to the process being performed within chamber 102. Tool 100 also includes a pressure sensor 122 (e.g., an MKS Baratron sensor) for monitoring the pressure within chamber 102, an actuator (e.g., a throttle valve) 124 for selectively adjusting the pressure within chamber 102, and a pressure controller 120 for controlling actuator 124 in response to information received from sensor 122 and instructions received from tool controller 110. Tool 100 typically also includes a variety of other sensors and actuators (e.g., thermistors, heaters) for monitoring and controlling other relevant parameters of the environment within chamber 102, but, for clarity, such other sensors and actuators are not shown in FIG. 1.
In operation, tool controller 110 generally provides a “set point” (e.g., 200 millitorr) to pressure controller 120. Then, using pressure measurements provided by pressure sensor 122 and the action of actuator 124, the pressure controller 120 endeavors to maintain the pressure within chamber 102 at the set point. Other than providing the desired set point to pressure controller 120, the tool controller 110 is generally not actively involved in pressure control. The tool controller 110 may be thought of as a “high level” controller that controls many parameters relevant to process chamber 102 (e.g., pressure, temperature, power, gas content, wafer location), whereas pressure controller 120 may be thought of as a “low level” controller that actively controls a single process parameter (i.e., pressure), by for example manipulating actuator 124. As indicated generally above, tool 100 typically includes several other low level controllers (not illustrated) for controlling other process parameters relevant to chamber 102.
As shown in FIG. 1, pressure controller 120 communicates with pressure sensor 122 and actuator 124 via analog lines 140 and 142, respectively. Also, tool controller 110 communicates with pressure controller 120 via line 150, which may be either an analog line or a digital line or bus. Many prior art tools use such analog lines (e.g., 140 and 142). Such analog lines are advantageously simple and inexpensive. However, they can also suffer from noise and poor dynamic range.
FIG. 2 shows another prior art tool 200. Tool 200 is very similar to tool 100 (FIG. 1) except the analog communication lines are replaced with digital busses. More specifically, like tool 100, tool 200 includes process chamber 102, tool controller 110, pressure controller 120, pressure sensor 122, and actuator 124 (as well as a variety of other controllers and actuators, which for clarity are not illustrated). However, tool 200 uses digital busses instead of analog lines for communication. Specifically, tool 200 includes a digital bus 240. Tool controller 110 connects to bus 240 via interface 248; pressure controller 120 connects to bus 240 via interface 244, pressure sensor 122 connects to bus 240 via interface 242, and actuator 124 connects to bus 240 via interface 246. Replacing the analog communication lines with digital busses advantageously provides enhanced noise immunity, improved dynamic range, and allows tool 200 to use newer models of devices (e.g., of pressure sensor 122) that provide digital rather than analog interfaces. However, as discussed below, despite the use of digital busses, communication in tool 200 is inefficient.
In tool 200, tool controller 110 normally regularly polls all sensors in the tool. That is, controller 110 normally sends periodic messages, via bus 240, to each sensor in tool 200, and these messages request the sensors to transmit their status, via bus 240, to tool controller 110. In this fashion, tool controller 110 receives regular updates of the current measurements of parameters provided by the sensors, such as pressure sensor 122, that monitor the environment of process chamber 102. Tool controller 110 uses the information received from the sensors, such as pressure sensor 122, to maintain a current “model”, or “image”, of the environment within process chamber 102. This model is normally maintained within memory (e.g., RAM) within the tool controller 110. The model maintained by tool controller 110 is then used to provide data, when necessary, to other components within tool 200. For example, controllers or CPUs (not shown) that control tool 200 at a higher level than tool controller 110 may request this data from tool controller 110. As another example, pressure controller 120 typically monitors the pressure within process chamber 102 by periodically requesting the current pressure measurement from tool controller 110. Tool controller 110 responds to these requests from pressure controller 120 by transmitting the most recent pressure measurement received from pressure sensor 122 (i.e., the pressure measurement that is currently stored in the model maintained by tool controller 110) to pressure controller 120.
In other words, pressure controller 120 typically does not receive information about the pressure within process chamber 102 directly from pressure sensor 122 and instead receives that information directly from tool controller 110. This method of transferring pressure measurements from pressure sensor 122 to pressure controller 120 indirectly via tool controller 110 works well, but it places an extra burden on tool controller 110. That is, in addition to performing its other tasks, tool controller 110 must periodically send messages to pressure controller 120 regarding measurements of pressure within process chamber 102.
Another method of transferring pressure measurements from pressure sensor 122 to pressure controller 120 is by “peer-to-peer” communication. In this method, pressure controller 120 periodically sends messages, via bus 240, to pressure sensor 122 requesting the pressure sensor 122 to send a message with its current pressure measurement, via bus 240, back to pressure controller 120. This type of peer-to-peer communication advantageously relieves tool controller 110 from the responsibility of transmitting pressure information to pressure controller 120. However, it disadvantageously requires bus 240 to carry extra messages, thereby increasing message traffic on the bus. In addition, messages (both requests and responses) between the pressure controller 120 and the pressure sensor 122 may be prevented from accessing the bus at known times due to other network activity. This can result in latency and non-determinism of the pressure feedback signal from the pressure sensor 120. It is well understood that the proper operation of a closed-loop control system must minimize latency and non-determinism to allow optimum control performance.
One popular form of communication protocol used in tools such as tool 200 that supports both the regular polling messages used by tool controller 110, and peer-to-peer messages between devices such as pressure controller 120 and pressure sensor 122, is called “DeviceNet”. Background information regarding the design and operation of DeviceNet systems can be found, for example, in the literature available from the Open DeviceNet Vendors Association (ODVA). Briefly, DeviceNet messages generally contain a header and some data. The header includes the address of the sender of the message and the address of at least one intended recipient of the message. For example, a message from pressure sensor 122 to tool controller 110 would have a header specifying the DeviceNet address of pressure sensor 122 (as the message sender), the DeviceNet address of tool controller 110 (as the intended message recipient), and a data portion containing the current pressure measurement provided by sensor 122 and possibly other status information about sensor 122.
Devices (e.g., pressure controller 120) that are compatible with DeviceNet typically include a “controller area network” (CAN). A CAN is the basic hardware associated with a DeviceNet device. FIG. 3 shows a block diagram of tool 200 that is very similar to that of FIG. 2. However, in FIG. 3, the view of pressure controller 120 has been expanded to show that it includes a CAN 120A, and a local processor 120B. In reality, each of the devices in tool 200 (e.g., pressure sensor 122, actuator 124) also include their own CAN as well as other components (such as local processors), however, for clarity these other CANs are not shown in FIG. 3. One task performed by the CAN is examining the headers of all messages transferred on the communication bus (e.g., bus 240), and screening out messages not intended for the device. For example, the CAN 120A of pressure controller 120 examines the header of all messages on bus 240 and screens out all messages for which the address of the intended recipient is not pressure controller 120. That is, CAN 120A only passes messages along to local processor 120B when the pressure controller 120 is the intended recipient of the message. This allows the local processor 120B within pressure controller 120 to ignore most of the messages on bus 240 and permits local processor 120B to pay attention to, or respond to, only those messages that are actually intended for the pressure controller 120.
Because of the inefficiencies discussed above, there remains a need for improved communication with tools such as tool 200.